# 配置redis
import redis
from flask import Flask
# 导包SQLAlchemy数据库配置
from flask_sqlalchemy import SQLAlchemy
# 导包flask_wtf.csrf  CSRFProtect
from flask_wtf.csrf import CSRFProtect
# 导包Session
from flask_session import Session



# 定义配置的类，并从中加载配置(项目配置文件）
class Config(object):
    # SQLAlchemy数据库的配置信息
    SQLALCHEMY_DATABASE_URI = 'mysql://root:mysql@127.0.0.1/informmation09'
    SQLALCHEMY_TRACK_MODIFICATIONS = False

    # 配置redis
    REDIS_HOST = '127.0.0.1'
    REDIS_PORT = 6379

    # 设置密钥
    SECRET_KEY = 'LU69MAeVp9hErq3WkmVW9SfmOniRoWbd7N4ueUv4VbE='

    # 配置Flask-Session扩展
    SESSION_TYPE = 'redis'  # 设置要同步的位置
    SESSION_REDIS = redis.StrictRedis(host=REDIS_HOST, port=REDIS_PORT)  # 设置redis的ip和port
    # SESSION_KEY_PREFIX = 'session:'  # 默认是：session:
    SESSION_USE_SIGNER = True  # 设置用户签名，开启签名，用户保护数据
    SESSION_PERMANENT = 86400 * 7  # session的有效期，配置过期时间为7天



# 创建app实例对象
app = Flask(__name__)

# 找到app的密钥
# app.secret_key
# app.permanent_session_lifetime

# app绑定配置
app.config.from_object(Config)

# 创建数据库
db = SQLAlchemy(app)

# 创建redis的对象
redis_store = redis.StrictRedis(host=Config.REDIS_HOST, port=Config.REDIS_PORT)

# 开启CSRF保护
CSRFProtect(app)

# 设置flask-Session扩展
# 将存在浏览器cookie中的session的数据，同步到服务器的指定地址中redis
Session(app)


@app.route('/')
def index():
    return 'hello world'

if __name__ == '__main__':
    app.run(debug=True)
